The present invention relates generally to data-processing and more particularly to virtual appliances.
Virtual appliances are a specific type of software appliances. In general, a software appliance is a software solution comprising a software application (i.e., one or more application programs performing a specific user task) and a Just Enough Operating System (JeOS) (i.e., a limited operating system specifically tailored to support the software application), which are encapsulated in a pre-built, self-contained unit. The software appliance provides for simplified management and improved isolation with respect to a standard software application running on a full general-purpose operating system.
In particular, a virtual appliance is a software appliance designed to run in a virtualized environment; for this purpose, the virtual appliance comprises one or more virtual machines (i.e., emulations by software of physical machines), each one with its operating system and application programs. Virtual appliances allow provisioning corresponding services in a very simple and fast way.
Each virtual appliance (like any other software artifact) is subject to continual maintenance operations during its life cycle. Particularly, patches (of fixes) are often applied to correct errors or to address security issues temporarily. Periodically, new versions or releases of the virtual appliance (incorporating all the available patches and providing new functions) are delivered.
However, the maintenance of the virtual appliance is quite complex; indeed, maintenance of a virtual appliance generally requires a number of updates to its entire stack of software components (i.e., operating systems, application programs and/or virtual machines), especially in large virtual appliances that comprise multiple application tiers, each one of them in turn comprising multiple virtual machines with corresponding operating systems and application programs.